/* $Id: ProcessDomainObjectManager.java 
 * Copyright (C) 2011, TRAKHEES
 *  
 * Revision History
 *
 * Date  			Author 		    	Remarks
 * ---------------------------------------------------------------------------------
 *
 */
package ae.pcfc.etks.online.common.domain.manager;

import java.util.List;

import ae.pcfc.etks.online.common.domain.ProcStepAthmnt;
import ae.pcfc.etks.online.common.domain.Process;
import ae.pcfc.etks.online.common.domain.ProcessStep;
import ae.pcfc.etks.online.common.exception.LookupException;
import ae.pcfc.etks.online.common.exception.PersistenceException;

public interface ProcessDomainObjectManager extends BaseDomainObjectManager{
	
	/**
	 * add
	 * Method to add process step
	 * @param processStep
	 * @return
	 * @throws PersistenceException
	 * boolean
	 */
	public boolean add(ProcessStep processStep) throws PersistenceException;
	
	/**
	 * getProcessByProcessAndStepCode
	 * Method to get process domain object by process code and process step code
	 * @param processCode
	 * @param processStepCode
	 * @return
	 * @throws LookupException
	 * ae.pcfc.etks.online.common.domain.Process
	 */
	public ae.pcfc.etks.online.common.domain.Process getProcessByProcessAndStepCode(String processCode, String processStepCode) throws LookupException;
	
	/**
	 * getProcessStepByProcessStepCode
	 * Method to find process step domain object by process step code
	 * @param processStepCode
	 * @return
	 * @throws LookupException
	 * ProcessStep
	 */
	public ProcessStep getProcessStepByProcessStepCode(String processStepCode) throws LookupException;
	
	/**
	 * findProcessStepAttachmentByPrimaryKey
	 * Method to find process step attachment by primary key
	 * @param id
	 * @return
	 * @throws LookupException
	 * ProcStepAthmnt
	 */
	public ProcStepAthmnt findProcessStepAttachmentByPrimaryKey(Long id) throws LookupException;
	
	/**
	 * getProcessByProcessCode
	 * Method to find process by process code
	 * @param processCode
	 * @return
	 * ae.pcfc.etks.online.common.domain.Process
	 */

	public List<Process> getAllProcesses();
	
	public ae.pcfc.etks.online.common.domain.Process getProcessByProcessCode(String processCode);

	public ProcessStep getProcessStepByProcessCodeAndProcessStepCode(String strProcessCode, String strProcessStepCode);	
}
